package negocio;

import entidades.Empresa;
import entidades.Solicitud;
import entidades.Taxi;
import entidades.Usuario;
import excepciones.FachadaException;
import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author Juan Leal
 */
@Remote
public interface FachadaNegocioRemote {

    public boolean agregarEmpresa(Empresa empresa) throws FachadaException;

    public boolean editarEmpresa(Empresa empresa) throws FachadaException;

    public boolean eliminarEmpresa(Empresa empresa) throws FachadaException;

    public Empresa buscarmpresa(Empresa empresa) throws FachadaException;

    public List<Empresa> buscarEmpresas(Usuario usuario) throws FachadaException;

    public List<Empresa> listarEmpresas() throws FachadaException;

    public boolean agregarTaxi(Taxi taxi) throws FachadaException;

    public boolean editarTaxi(Taxi taxi) throws FachadaException;

    public boolean eliminarTaxi(Taxi taxi) throws FachadaException;

    public Taxi buscar(Taxi taxi) throws FachadaException;

    public List<Taxi> listarTaxis() throws FachadaException;

    public List<Taxi> listarTaxis(Empresa empresa) throws FachadaException;

    public boolean agregar(Solicitud solicitud) throws FachadaException;

    public boolean editar(Solicitud solicitud) throws FachadaException;

    public boolean elimina(Solicitud solicitud) throws FachadaException;

    public Solicitud buscar(Solicitud solicitud) throws FachadaException;

    public List<Solicitud> buscarSolicitud(Usuario usuario) throws FachadaException;

    public List<Solicitud> listarSolicitudes() throws FachadaException;

    public String iniciarSesion(Usuario usuario) throws FachadaException;

    public void validaSesion (String token, String[] roles) throws FachadaException;

    public Usuario buscaUsuario(String username) throws FachadaException;
}
